home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2005 October / PCWOCT05.iso / Software / FromTheMag / XAMPP 1.4.14 / xampp-win32-1.4.14-installer.exe / xampp / apache / bin / apr-config.bat < prev    next >
DOS Batch File  |  2005-05-30  |  6KB  |  204 lines

  1. @rem = '--*-Perl-*--
  2. @echo off
  3. if "%OS%" == "Windows_NT" goto WinNT
  4. perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
  5. goto endofperl
  6. :WinNT
  7. perl -x -S %0 %*
  8. if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
  9. if %errorlevel% == 9009 echo You do not have Perl in your PATH.
  10. if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
  11. goto endofperl
  12. @rem ';
  13. #!c:\xampp\perl\bin\perl.exe
  14. #line 15
  15. use strict;
  16. use warnings;
  17. use Getopt::Long;
  18. use File::Spec::Functions qw(catfile catdir);
  19.  
  20. # ====================================================================
  21. #
  22. #  Copyright 2003-2004  The Apache Software Foundation
  23. #
  24. #  Licensed under the Apache License, Version 2.0 (the "License");
  25. #  you may not use this file except in compliance with the License.
  26. #  You may obtain a copy of the License at
  27. #
  28. #      http://www.apache.org/licenses/LICENSE-2.0
  29. #
  30. #  Unless required by applicable law or agreed to in writing, software
  31. #  distributed under the License is distributed on an "AS IS" BASIS,
  32. #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  33. #  See the License for the specific language governing permissions and
  34. #  limitations under the License.
  35. # ====================================================================
  36. #
  37. # APR script designed to allow easy command line access to APR configuration
  38. # parameters.
  39.  
  40.  
  41. sub usage {
  42.     print << 'EOU';
  43. Usage: apr-config [OPTION]
  44.  
  45. Known values for OPTION are:
  46.   --prefix[=DIR]    change prefix to DIR
  47.   --bindir          print location where binaries are installed
  48.   --includedir      print location where headers are installed
  49.   --libdir          print location where libraries are installed
  50.   --cc              print C compiler name
  51.   --cpp             print C preprocessor name and any required options
  52.   --ld              print C linker name
  53.   --cflags          print C compiler flags
  54.   --cppflags        print cpp flags
  55.   --includes        print include information
  56.   --ldflags         print linker flags
  57.   --libs            print additional libraries to link against
  58.   --srcdir          print APR source directory
  59.   --installbuilddir print APR build helper directory
  60.   --link-ld         print link switch(es) for linking to APR
  61.   --apr-so-ext      print the extensions of shared objects on this platform
  62.   --apr-lib-file    print the name of the apr lib
  63.   --version         print the APR version as a dotted triple
  64.   --help            print this help
  65.  
  66. When linking, an application should do something like:
  67.   APR_LIBS="\`apr-config --link-ld --libs\`"
  68.  
  69. An application should use the results of --cflags, --cppflags, --includes,
  70. and --ldflags in their build process.
  71.  
  72. EOU
  73.     exit(1);
  74. }
  75.  
  76. my ${CC} = q[cl];
  77. my ${LIBS} = q[];
  78. my ${APR_SO_EXT} = q[dll];
  79. my ${APR_DOTTED_VERSION} = q[0.9.6];
  80. my ${installbuilddir} = q[O:\apache\build];
  81. my ${APR_MAJOR_VERSION} = q[0];
  82. my ${bindir} = q[O:\apache\bin];
  83. my ${LD} = q[link];
  84. my ${CPP} = q[cl -nologo -E];
  85. my ${APR_SOURCE_DIR} = q[];
  86. my ${includedir} = q[O:\apache\include];
  87. my ${LDFLAGS} = q[ kernel32.lib /nologo /subsystem:windows /dll /machine:I386 ];
  88. my ${exec_prefix} = q[O:\apache];
  89. my ${APR_LIBNAME} = q[libapr.lib];
  90. my ${datadir} = q[O:\apache];
  91. my ${libdir} = q[O:\apache\lib];
  92. my ${CFLAGS} = q[ /nologo /MD /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG ];
  93. my ${APR_LIB_TARGET} = q[];
  94. my ${SHELL} = q[D:\WINNT\system32\cmd.exe];
  95. my ${CPPFLAGS} = q[];
  96. my ${EXTRA_INCLUDES} = q[];
  97. my ${prefix} = q[O:\apache];
  98.  
  99. my %opts = ();
  100. GetOptions(\%opts,
  101.            'prefix:s',
  102.            'bindir',
  103.            'includedir',
  104.            'libdir',
  105.            'cc',
  106.            'cpp',
  107.            'ld',
  108.            'cflags',
  109.            'cppflags',
  110.            'includes',
  111.            'ldflags',
  112.            'libs',
  113.            'srcdir',
  114.            'installbuilddir',
  115.            'link-ld',
  116.            'apr-so-ext',
  117.            'apr-lib-file',
  118.            'version',
  119.            'help'
  120.           ) or usage();
  121.  
  122. usage() if ($opts{help} or not %opts);
  123.  
  124. if (exists $opts{prefix} and $opts{prefix} eq "") {
  125.     print qq{$prefix\n};
  126.     exit(0);
  127. }
  128. my $user_prefix = defined $opts{prefix} ? $opts{prefix} : '';
  129. my %user_dir;
  130. if ($user_prefix) {
  131.     foreach (qw(lib bin include build)) {
  132.         $user_dir{$_} = catdir $user_prefix, $_;
  133.     }
  134. }
  135. my $flags = '';
  136.  
  137. SWITCH : {
  138.     local $\ = "\n";
  139.     $opts{bindir} and do {
  140.         print $user_prefix ? $user_dir{bin} : $bindir;
  141.         last SWITCH;
  142.     };
  143.     $opts{includedir} and do {
  144.         print $user_prefix ? $user_dir{include} : $includedir;
  145.         last SWITCH;
  146.     };
  147.     $opts{libdir} and do {
  148.         print $user_prefix ? $user_dir{lib} : $libdir;
  149.         last SWITCH;
  150.     };
  151.     $opts{installbuilddir} and do {
  152.         print $user_prefix ? $user_dir{build} : $installbuilddir;
  153.         last SWITCH;
  154.     };
  155.     $opts{srcdir} and do {
  156.         print $APR_SOURCE_DIR;
  157.         last SWITCH;
  158.     };
  159.     $opts{cc} and do {
  160.         print $CC;
  161.         last SWITCH;
  162.     };
  163.     $opts{cpp} and do {
  164.         print $CPP;
  165.         last SWITCH;
  166.     };
  167.     $opts{ld} and do {
  168.         print $LD;
  169.         last SWITCH;
  170.     };
  171.     $opts{cflags} and $flags .= " $CFLAGS ";
  172.     $opts{cppflags} and $flags .= " $CPPFLAGS ";
  173.     $opts{includes} and do {
  174.         my $inc = $user_prefix ? $user_dir{include} : $includedir;
  175.         $flags .= qq{ /I"$inc" $EXTRA_INCLUDES };
  176.     };
  177.     $opts{ldflags} and $flags .= " $LDFLAGS ";
  178.     $opts{libs} and $flags .= " $LIBS ";
  179.     $opts{'link-ld'} and do {
  180.         my $libpath = $user_prefix ? $user_dir{lib} : $libdir;
  181.         $flags .= qq{ /libpath:"$libpath" $APR_LIBNAME };
  182.     };
  183.     $opts{'apr-so-ext'} and do {
  184.         print $APR_SO_EXT;
  185.         last SWITCH;
  186.     };
  187.     $opts{'apr-lib-file'} and do {
  188.         my $full_aprlib = $user_prefix ? 
  189.             (catfile $user_dir{lib}, $APR_LIBNAME) :
  190.                 (catfile $libdir, $APR_LIBNAME);
  191.         print $full_aprlib;
  192.         last SWITCH;
  193.     };
  194.     $opts{version} and do {
  195.         print $APR_DOTTED_VERSION;
  196.         last SWITCH;
  197.     };
  198.     print $flags if $flags;
  199. }
  200. exit(0);
  201.  
  202. __END__
  203. :endofperl
  204.